1. Field of the Invention
The present invention relates generally to paging subsystems of a data processing system. More specifically, the present invention relates to a computer implemented method and data processing system for partition redispatching using page tracking.
2. Description of the Related Art
Increasingly, large symmetric multi-processor data processing systems are not being used as single large data processing systems. Instead, these types of data processing systems are being partitioned and used as smaller systems. These systems are also referred to as logical partitioned (LPAR) data processing systems. A logical partitioned functionality within a data processing system allows multiple copies of a single operating system, or multiple heterogeneous operating systems, to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, may be assigned a non-overlapping subset of the platforms resources. These platform allocable resources include one or more architecturally distinct processors and respective interrupt management areas, regions of system memory, and input/output (I/O) adapter bus slots. The partition's resources are represented by the platform's firmware to the operating system image.
Each distinct operating system, or image of an operating system running within a platform, is protected from each other, such that software errors on one logical partition cannot affect the correct operation of any of the other partitions. This protection is provided by allocating a disjointed set of platform resources to be directly managed by each operating system image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to that image. Furthermore, software errors in the control of an operating system's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the operating system or each different operating system directly controls a distinct set of allocable resources within the platform.
With respect to hardware resources in a logical partitioned data processing system, these resources are shared disjointly among various partitions. These resources may include, for example, input/output (I/O) adapters, dual in-line memory modules (DIMMs), non-volatile random access memory (NVRAM), and hard disk drives. Each partition within a logical partitioned data processing system may be booted and shut down over and over without having to power-cycle the entire data processing system.
Most computers have a fixed memory and processor capacity. The virtualization of processors allows more operating system instances, or partitions, in a system than there are processors. This, in turn, tends to increase the memory required to run all of the partitions, as operating systems and applications have certain minimum memory requirements that do not tend to scale with processor power. This imbalance limits the effective number of partitions that a given system can support at any point in time.
Traditionally, virtual memory has been one solution to this problem. Virtual memory is a technique by which some of the memory used by a partition is actually on disk. Unfortunately, disk paging virtual memory schemes suffer greatly from the fact that microprocessor performance has increased at a much faster rate than disk performance. This gap reduces the effectiveness of disk based virtual memory to a huge degree. In fact, most UNIX™ customers tune their systems to avoid paging at all costs.
Virtual memory can be employed in a partition management firmware in an attempt to decrease the effective memory usage of partitions. However, disk-based virtual memory approaches in a partition management firmware will typically suffer the same issues as operating system based virtual memory. Another, similar approach is to apply compression algorithms to memory. This approach was used on certain International Business Machines Corporation “system X” products in the past. A hardware-based approach to memory compression is elegant as it is mostly transparent to software; however, it requires building special purpose hardware to deliver the function.
Software based compression seems poised as an alternative approach to hardware based compression. In a software based compression approach, the partition management firmware selects pages for compression and decompression. The actual compression and decompression function can be delivered either through processor based code or with accelerators. An accelerator is special purpose hardware that is optimized for specific algorithms, wherein the function may be located on the microprocessor chip itself, or outside the microprocessor chip. Software-based compression has the benefit of lower complexity and cost of hardware, in that it takes advantage of the massive increases in microprocessor performance.
For example, most systems have a considerable number of unused processor cycles that could be applied to compression and decompression. Further, benefits accrue because software based compression can be used selectively, and the latency to decompress a page in memory is lower than going to disk. Once systems are graced with compression and decompression accelerators, the partition management firmware can begin to use software compression aggressively. For example, when a partition is undispatched, the memory it was using can be compressed in the background by the partition management firmware until the partition is dispatched again.